Predictive motion vector coding

ABSTRACT

Overlapped block disparity estimation and compensation is described. Compensating for images with overlapped block disparity compensation (OBDC) involves determining if OBDC is enabled in a video bit stream, and determining if OBDC is enabled for one or more macroblocks that neighbor a first macroblock within the video bit stream. The neighboring macroblocks may be transform coded. If OBDC is enabled in the video bit stream and for the one or more neighboring macroblocks, predictions may be made for a region of the first macroblock that has an edge adjacent with the neighboring macroblocks. OBDC can be causally applied. Disparity compensation parameters or modes may be shared amongst views or layers. A variety of predictions may be used with causally-applied OBDC.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.18/082,142, filed Dec. 15, 2022, which is a continuation of U.S. patentapplication Ser. No. 17/332,028, filed May 27, 2021, now U.S. Pat. No.11,539,959, issued on Dec. 27, 2022, which is a continuation of U.S.patent application Ser. No. 16/790,337, filed Feb. 13, 2020, now U.S.Pat. No. 11,025,912, issued on Jun. 1, 2021, which is a continuation ofU.S. application Ser. No. 16/517,382, filed Jul. 19, 2019, now U.S. Pat.No. 10,645,392, issued on May 5, 2020, which is a continuation of U.S.application Ser. No. 16/298,051, filed Mar. 11, 2019, now U.S. Pat. No.issued on Feb. 25, 2020, which is a continuation of U.S. applicationSer. No. filed Nov. 29, 2017, now U.S. Pat. No. 10,321,134, issued onJun. 11, 2019, which is a continuation of U.S. application Ser. No.15/496,795, filed Apr. 25, 2017, now U.S. Pat. No. 9,843,807, issued onDec. 12, 2017, which is a continuation of U.S. application Ser. No.15/164,423, filed May 25, 2016, now U.S. Pat. No. 9,667,993, issued onMay 30, 2017, which is a continuation of U.S. application Ser. No.14/723,693, filed May 28, 2015, now U.S. Pat. No. 9,357,230, issued onMay 31, 2016, which is a continuation of U.S. application Ser. No.14/242,975, filed Apr. 2, 2014, now U.S. Pat. No. 9,060,168, issued onJun. 16, 2015, which is a continuation of U.S. application Ser. No.13/057,204 filed Feb. 2, 2011, now U.S. Pat. No. 9,445,121, issued onSep. 13, 2016, which is a National Stage Entry of PCT/US2009/052650filed on Aug. 4, 2009 which claims the benefit of priority of U.S.Provisional Patent Application No. 61/086,056, filed Aug. 4, 2008, allof which are hereby incorporated by reference in their entirety.

TECHNOLOGY

The present disclosure relates generally to video technology. Moreparticularly, embodiments of the present invention relate to overlappedblock disparity estimation and compensation.

BACKGROUND

As used herein, the term “image feature” may refer to one or morepicture elements (e.g., one or more pixels) within a field. As usedherein, the term “source field” may refer to a field from whichinformation relating to an image feature may be determined or derived.As used herein, the term “intermediate field” may refer to a field,which may temporally follow or lead a source field in a video sequence,in which information relating to an image feature may be described withreference to the source field. As used herein, the term “disparityestimation” may refer to techniques for computing motion vectors orother parametric values with which motion, e.g., between two or morefields of a video sequence, may efficiently be predicted, modeled ordescribed. An example of disparity estimation can be motion estimation.As used herein, the term “disparity estimate” may refer to a motionvector or another estimated parametric motion related value. As usedherein, the term “disparity compensation” may refer to techniques withwhich a motion estimate or another parameter may be used to compute aspatial shift in the location of an image feature in a source field todescribe the motion or some parameter of the image feature in one ormore intermediate fields of a video sequence. Disparity compensation mayinvolve a process of using a disparity estimate to derive the predictionof the current samples and/or regions of interest. A disparity model mayinclude various spatial and/or temporal shift parameters. An example ofdisparity compensation can be motion compensation. The above terms mayalso be used in conjunction with various video coding concepts andprediction techniques (e.g., intra prediction and illuminationcompensation).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a diagram of an example of block motion compensationwithout OBDC.

FIG. 2 depicts a diagram of an example video encoder.

FIG. 3 depicts a diagram of an example video decoder.

FIG. 4A is a diagram of an example diamond-shaped OBDC or overlappedpartition motion compensation pattern.

FIG. 4B is a diagram of an example orthogonal-shaped OBDC or overlappedpartition motion compensation pattern.

FIG. 4C is a diagram of an example circular-shaped OBDC or overlappedpartition motion compensation pattern.

FIG. 5 depicts example predicted block regions in which differentregions are predicted using multi-hypothesis based motion compensation.

FIG. 6 depicts a diagram of an example OBDC embodiment.

FIGS. 7A-7C depict diagrams of patterns for examples of overlappedpartition motion compensation.

FIGS. 8A-8B depict diagrams of patterns for examples of overlappedpartition motion compensation.

FIG. 9 depicts a diagram of an example OBDC embodiment.

FIG. 10A depicts a diagram of intra prediction with overlappingconsiderations using horizontal prediction.

FIG. 10B depicts a diagram of an example of intra prediction withoverlapping considerations using vertical prediction.

FIG. 10C depicts a diagram of an example of intra prediction withoverlapping considerations using diagonal prediction.

FIG. 11 depicts a diagram of an example of adaptively utilizing OBDCwithin a picture.

FIGS. 12A-D depict example OBDC embodiments with variable block sizes.

FIG. 13 depicts an example OBDC embodiment with a spiral macroblockcoding order.

FIG. 14 depicts an example OBDC embodiment with a random macroblockcoding order.

FIGS. 15A-B depict diagrams with examples where the shape of the OBDCprediction is dependent upon regions that have been previously encoded.

FIG. 16 depicts a flow chart of an example process for prediction usingcausal overlapping.

FIG. 17 depicts a system diagram of examples of display and/or imageprocessing devices for the disclosed OBDC techniques.

Like reference numbers and designations in the various drawings canindicate like elements.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Example embodiments relating to overlapped block disparity estimationand compensation are described herein. In the following description, forthe purposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of the present invention. Itwill be apparent, however, that embodiments of the present invention maybe practiced without these specific details. In other instances,well-known structures and devices are depicted in block diagram form inorder to avoid unnecessarily obscuring the present invention.

Overview

In some aspects, some embodiments include features for a method formotion compensation of images with overlapped block disparitycompensation (OBDC). The method includes determining if OBDC is enabledin a video bit stream, and determining if OBDC is enabled for one ormore macroblocks that neighbor a first macroblock within the video bitstream. The one or more neighboring macroblocks are transform coded. IfOBDC is enabled in the video bit stream and for the one or moreneighboring macroblocks, the method involves performing prediction for aregion of the first macroblock that has an edge adjacent with the one ormore neighboring macroblocks.

These and other embodiments can optionally include one or more of thefollowing features. The step of determining if OBDC is enabled for thevideo bit stream or the one or more macroblocks can include anycombination of the steps of: detecting a signaling instruction withinthe bit stream or the one or more macroblocks to enable OBDC;determining a semantic or relationship in the bit stream or the one ormore macroblocks to enable OBDC; determining neighboring blockinformation or differences in motion vectors to enable OBDC; ordetecting an association of the one or more macroblocks with a referenceindex that points to a reference picture that is associated with OBDCcoding. The method may involve applying a coding order. The step ofapplying the coding order can include utilizing a raster scan codingorder, a horizontal coding order, a vertical coding order, an arbitrarycoding order, or a zig-zag coding order. The method can also involve thestep of applying another type of prediction to the OBDC prediction.

These and other embodiments can also optionally include one or more ofthe following features. Other types of prediction can include interprediction, intra prediction, cross-layer prediction, cross-viewprediction, prediction using multi-hypothesis, and/or prediction withdependencies for the one or more neighboring macroblocks. Other types ofprediction can include prediction with a type of overlapping, predictionwith a type of propagation, prediction that is independent ofinformation of future macroblocks, or prediction with multiplemacroblock sizes or macroblock boundaries. The overlapping can involveinternal overlapping of the region of the first macroblock or externaloverlapping of the region of the first macroblock. The internaloverlapping of the region can involve overlapping the region usinginformation from one or more pixels of the first macroblock, and theexternal overlapping of the region can involve overlapping the regionusing information from pixels of one or more regions of the one or moreneighboring macroblocks. Some of the predictions may include predictionwith propagation in a pre-determined direction. The macroblocks can forma square pattern, a diamond pattern, or a circular pattern, and theprediction can extend in one or two directions for the pattern. Themacroblocks can also form an orthogonal pattern, and polygons with Nnumber of edges, and the prediction can extend in at least threedimensions (e.g., three-dimensional prediction). The prediction caninclude mesh-based prediction, wherein the mesh-based prediction can berepresented by triangular shapes. The method can include generatingresidual information from the prediction, in which the residualinformation can include information for the first macroblock and the oneor more neighboring macroblocks, and the residual information caninclude motion/disparity information. The method may optionally involvetransform coding the residual information, quantizing the transformcoded residual information, and entropy encoding the quantizedinformation.

These and other embodiments can also optionally include one or more ofthe following features. The method can involve decoding the residual, inwhich the step of decoding can be independent of information from futuremacroblocks in an image of the video bit stream. Any of the predictionscan include one or more operations from filtering, interpolation,scaling, or affine projection. The method can involve sharing and/orcopying one or more disparity compensation parameters or modes amongstone or more views or layers. The method can include using informationfor the prediction of the region of the first macroblock to performprediction for one or more regions of another neighboring macroblock, inwhich the other neighboring macroblock is non-transform coded. The stepof performing the prediction can include applying OBDC to a subset ofdirections that are available for prediction for the first macroblock.Transformed residuals may be present for the one or more neighboringmacroblocks for which a presence of a transformed residual is signaledin the video bit stream.

In some aspects, some embodiments include features for a method formotion compensation of images with overlapped block disparitycompensation that includes the steps of determining if OBDC is enabledin a video bit stream, and determining if OBDC is enabled for a firstmacroblock within the video bit stream. The first macroblock istransform coded, and the first macroblock is adjacent to one or moreneighboring macroblocks. If OBDC is enabled in the video bit stream andfor the first macroblock, the method includes performing prediction fora region of the one or more neighboring macroblocks using informationfrom the first macroblock, in which the region includes a non-transformcoded region.

These and other embodiments can also optionally include one or more ofthe following features. The information associated with this method caninclude motion vector information, texture information, and/orinformation associated with a pixel. The step of determining if OBDC isenabled for the video bit stream or the first macroblock includes one ormore of the following steps: detecting a signaling instruction withinthe bit stream or the first macroblock to enable OBDC; determining asemantic or relationship in the bit stream or the first macroblock toenable OBDC; determining neighboring block information or differences inmotion vectors to enable OBDC; or detecting an association of the firstmacroblock with a reference index that points to a reference picturethat is associated with OBDC coding.

In some aspects, some embodiments include features for a method fordisparity compensation of images with overlapped block disparitycompensation, the method includes the steps of determining if OBDC isenabled in a bit stream of video information, determining a first regionof a first macroblock within the bit stream, and determining whether oneor more residual regions in one or two macroblocks that are transformcoded and adjacent to the first macroblock are enabled for overlappingprediction. If the bit stream is enabled for OBDC and the one or moreresidual regions are enabled for overlapping prediction, the methodinvolves predicting pixels in the first region of the first macroblockusing motion vectors from only the one or more residual regions in theone or two adjacent macroblocks, and weighting the pixels in the firstregion as a function of a distance of the pixels from an area of the oneor two adjacent macroblocks.

These and other embodiments can also optionally include one or more ofthe following features. The prediction for the pixels can be a causalprediction. The weighting can include a weighted average that is basedon the distance. The OBDC can involve a computation of a residual of thefirst macroblock that is independent of information from futuremacroblocks. The “future” macroblocks may refer to macroblocks to becoded or processed at a future time (e.g., future-coded macroblocks).Alternatively, the overlapped motion compensation can be computedindependently of information from a future or adjacent macroblock. Thefirst region can be neighboring a first boundary of the firstmacroblock. The prediction can involve intra prediction. The intracoding or intra prediction can include one or more of verticalprediction, horizontal prediction, diagonal prediction, and/or interprediction, which may include single, bi-predictive inter prediction ormulti-hypothesis inter prediction, or a combination of intra and interprediction. The method can involve signaling the one or more adjacentmacroblocks with one or more of flags or semantics. The method may alsoinvolve predicting pixels in one or more other regions, and combiningthe prediction of the first region with the prediction for the one ormore regions. The prediction can include a coding mode for themacroblocks, in which the coding mode includes an arbitrary coding mode,a spiral coding mode, a random coding mode, a horizontal coding mode, avertical coding mode, or a diagonal coding mode. One or more other typesof predictions can be combined for the first region. The macroblock canhave a block partitioning that is different from a block partitioning ofone of the adjacent macroblocks.

These and other embodiments can also optionally include one or more ofthe following features. The method can include predicting informationfor other regions within a picture, in which the other regions includeoverlapping macroblock regions and non-overlapping macroblocks regions.One or more of the macroblocks can include transformed residuals forwhich a presence of at least one of the transformed residuals issignaled in the video bit stream. The prediction can be combined withanother type of prediction from one of the adjacent macroblocks, inwhich the other type of prediction can involve prediction usingmulti-hypotheses, or prediction with multiple block sizes or macroblockpartition types. The method can also involve applying weighting to theother type of prediction.

In some aspects, some embodiments include features for a computerprogram product, encoded on a computer-readable medium, which includesinstructions to cause data processing apparatus to perform operationsfor overlapped block disparity estimation and compensation for images.The operations include, for a number of macroblocks, performing OBDCprediction for at least a first subset of macroblocks by overlappingless than all block boundaries for the macroblocks in at least the firstsubset such that the OBDC prediction for at least the first subset iscausal.

These and other embodiments can optionally include one or more of thefollowing features. The operations can include performing OBDCprediction for a second subset of macroblocks that involves overlappingby overlapping all block boundaries for the macroblocks in the secondsubset, and combining the OBDC prediction for at least the first subsetwith the OBDC prediction for the second subset. The operations caninvolve performing a type of motion prediction for a second subset ofmacroblocks that differs from the OBDC prediction of the macroblocks inat least the first subset of macroblocks, and combining the OBDCprediction for at least the first subset with the type of prediction forthe second subset. The operations for the combining can involve applyinga weighting parameter to the OBDC prediction for at least the firstsubset or the type of prediction for the second subset. Other operationscan include applying weighting to at least the first subset ofmacroblocks using the OBDC prediction; and applying a prediction mode tothe OBDC prediction. The prediction mode can include an internalprediction, an external prediction, or a combination of internal andexternal OBDC prediction. The OBDC prediction can include a coding modefor at least the first subset of macroblocks, in which the coding modecan include an arbitrary coding mode, a spiral coding mode a horizontalcoding mode, a vertical coding mode, or a diagonal coding mode.Instructions can also be associated with OBDC prediction that involvescomputing a residual of the first macroblock that is independent ofinformation from future macroblocks.

In some aspects, some embodiments include features for a system toperform motion estimation of images. The system includes a displaydevice to display image data, a computer readable medium to store theimage data and instructions for image data processing, and a dataprocessing device to process the instructions and image data, in whichthe instructions causes the device to perform overlapped block disparityestimation for images. The operations involve, for a number ofmacroblocks, performing OBDC prediction for at least a first subset ofmacroblocks by overlapping less than all block boundaries for themacroblocks in at least the first subset such that the OBDC predictionfor at least the first subset is causal.

These and other embodiments can optionally include one or more of thefollowing features. The instructions can include performing a type ofmotion prediction for a second subset of macroblocks that differs fromthe OBDC prediction of the macroblocks of at least the first subset ofmacroblocks, and combining the OBDC prediction for at least the firstsubset with the type of prediction for the second subset. Theinstructions for the combining can involve taking a weighted average ofthe OBDC prediction for at least the first subset and the type ofprediction for the second subset of macroblocks. The macroblocks caninclude macroblocks having various shapes or block size partitions. TheOBDC prediction can be signaled explicitly or via semantics to indicatewhether OBDC prediction is to be used for a macroblock in at least thefirst subset of macroblocks. One or more of the macroblocks can includetransformed residuals for which a presence of at least one of thetransformed residuals is signaled in the video bit stream.

In some aspects, some embodiments include features for a system fordisparity estimation and disparity compensation for video. The systemincludes a video encoder that has one or more video encoder componentsfor encoding that causally executes overlapped block disparityestimation and compensation to a subset of macroblocks in an image of avideo bit stream. The one or more video encoder components include adisparity estimation component to determine one or more prediction modesor prediction parameters, and a disparity compensation component toutilize disparity estimation component information to generateprediction information utilizing causally-executed OBDC for the subsetof macroblocks. The system also includes a video decoder having one ormore components for decoding, in which the one or more video decodercomponents can execute entropy decoding, execute disparity compensation,and/or generate residual information utilizing the causally-executedOBDC.

These and other embodiments can optionally include one or more of thefollowing features. The one or more video decoder components can bearranged to execute the entropy decoding, execute the disparitycompensation, and/or generate the residual information in series or inparallel.

Any of the methods or techniques described herein can also beimplemented in a system, an apparatus or device, a machine, a computerprogram product, in software, in hardware, or in any combinationthereof. For example, the computer program product can be tangiblyencoded on a computer-readable medium, and can include instructions tocause a data processing apparatus (e.g., a data processor) to performone or more operations for any of the methods described herein.

Overlapped Block Disparity Compensation (OBDC) Techniques

The disclosed techniques can use overlapped block disparity compensation(OBDC) and a variation of OBDC, primarily overlapped block motioncompensation (OBMC), for prediction. OBDC can be used with one or moreblocks (e.g., macroblocks) or regions. OBDC in a block (or region) canre-use the various prediction information, e.g., motion vectors,reference indices, illumination change parameters, intra predictionmethods among others, from other blocks (or the block's overlaps) suchthat the overlapping blocks (or regions) can be predicted using multiplehypotheses associated with each overlapping block (or region). Thedisclosed OBDC techniques can be causally applied, and can be employedwith arbitrary and flexible coding orders, such as vertical, horizontal,and/or spiral coding order. The disclosed OBDC techniques can besignaled (e.g., invoked) explicitly or by semantics to indicate whetherOBDC is to be used for a block or region. OBDC can also be signaledbased on the information of neighboring blocks and their relationshipwith the current block and its signaled disparity parameters, and/orbased on information for a range of minimum or maximum disparity ormotion vectors. The information for minimum and maximum vectors, or thedifferences between motion vectors, can be based on a pattern or can beadaptively changed. For example, if differences between motion vectorsbetween blocks are small, then OBDC can be automatically inferred forthose blocks. In some embodiments, there can be a dynamic OBDC weightgeneration, in which weights are applied to each OBDC hypothesis for thegeneration of the final prediction, based on disparity vector (e.g.,motion and/or illumination compensation parameters) relationships.

In some embodiments, if OBDC is allowed or signaled in a video bitstream, then prediction for a block in the bit stream can be performedthat utilizes OBDC for one or more regions of the block's edges thatneighbor previously-encoded blocks, if OBDC is also allowed or signaledfor those neighboring blocks. Further, if OBDC is allowed for thecurrent block in the bit stream, information (e.g., motion vector and orillumination compensation information) from the block can be used toprovide an initial prediction of uncoded regions.

Also, there can be weighting (e.g., illumination compensation, scalingparameters) applied to motion vectors to indicate how much OBDC will beused. The weighting can be variable based on the semantics of the motionvectors. For example, similar motion vectors can have similar weightsand dissimilar motion vectors can have dissimilar weights.

In some system embodiments, disparity estimation (e.g., motionestimation, intra prediction search, illumination parameter search,etc), disparity compensation, and mode decision can be employed in asystem in the context of OBDC. In other embodiments, OBDC can be usedfor parallelization of the encoding and decoding processes. In someembodiments, less blockiness may exist between block (e.g., macroblock)boundaries, and transform and coding processes can be independent ofregions that have yet to be coded. In other embodiments, various typesof prediction and OBDC techniques can be employed for providing a levelof coding quality with low system resources. For example, the OBDCtechniques can be employed with internal and/or external OBDCprediction, OBDC with various block (e.g., macroblock) sizing andrasterizing directions, and OBDC with various modes. The OBDC employedmay or may not be block-based OBDC embodiments. In some embodiments, theOBDC techniques may involve a combination of OBDC and non-OBDCprediction.

Video compression systems and standards (e.g., ISO MPEG-1, MPEG-2,1MPEG-4, MPEG-4 AVC/ITU-T H.264, H.261, H.263, and VC-1) may rely onintra and inter coding in order to achieve compression. In intra coding,spatial prediction methods can be used. Scalable systems (e.g.,cross-layer prediction) and multi-view (e.g., 3D) systems (e.g.,cross-view prediction) may be similar to inter view prediction systems.OBDC can be used with any of these types of systems, and OBDC partitionsfrom other layers or views can be predicted or reused with any of thesesystems in various embodiments.

In inter coding, compression can be achieved by exploiting the temporalcorrelation that may exist between pictures. More specifically,previously coded pictures can be used as prediction references forfuture pictures and motion and/or illumination change estimation andcompensation can be employed to determine and compensate forsimilarities between these pictures. Any residual information can thenbe encoded given a certain bit rate constraint using transform andquantization based techniques (e.g., by making use of the discretecosine transform (DCT), variants thereof such as the modified DCT(mDCT), other Fourier-like transforms, or wavelets). In this disclosureand for the sake of generality, any type of change that may occur fromone or more pictures to another (e.g., local or global translational,affine or any other type of motion, illumination or focus changes, etc.)can be referred to as “disparity” In some systems (e.g., H.264 or VC-1),the decoding process can also consider a post-processing/de-blockingoperation that attempts to alleviate the discontinuities that might havebeen introduced between adjacent partitions due to motion estimationinaccuracies around boundaries and/or due to the quantization process.

For some applications, scalable (e.g., the Scalable Video Coding (SVC)extension to AVC), or multi-view video coding solutions (e.g.,Multi-view video coding extension of AVC) also may be required. Suchsystems may use similar prediction methods and inter coding methods.These systems may add as references information from previously decodedimages that correspond to either previous lower quality or resolutionreferences (e.g., cross-layer prediction), or different views (e.g.,cross-view prediction). These references may have been optionallypreprocessed (e.g., filtered, upscaled, or affine transform projected)prior to usage as predictions. In some of these environments, disparityinformation from a previously coded view could be reutilized or used topredict the disparity information (e.g., modes, reference indices,motion information, etc.) for the currently encoded image.

There are several techniques that may address motion estimation invideo. Some motion estimation techniques involve “matching” methods,such as block matching techniques. For these matching methods, theconstraints on a smoothness of the motion field can be imposed by theenforcement of a parametric model for the motion over some region, whichcan be a block or rectangular region in block matching techniques or,more generally, arbitrarily shaped regions or segments of the images.

Block Motion Compensation (BMC) refers to a technique that is used forinter coding and exploits the temporal correlation that may existbetween adjacent frames. The technique considers motion parameters,including illumination change parameters, to predict a block or regionfrom previously encoded information. In some encoding systems, thequality of this block can be further enhanced by encoding the residual(error) of the prediction process utilizing transform coding techniques,such as wavelets or the discrete cosine transform, followed byquantization and entropy coding. BMC (and OBDC described below) can beused, for example, for filtering operations or other operations whereencoding of the residual is not performed. In some standards and codecs,blocks can be of different sizes and may not be usually overlapped.

For example, FIG. 1 depicts a diagram of an example of block motioncompensation without OBDC. In particular, FIG. 1 depicts a diagram 100for block motion compensation that uses non-overlapping prediction withdifferent block sizes 105. Some of the blocks 110 in the diagram 100 area first size, while other blocks 120 are a second, different block size.In the example depicted in FIG. 1 , the blocks 110 and 120 do notoverlap.

Blocks may also be aligned with the transform grid, even though in manycases the transform may be of a smaller size than the prediction block.In other techniques, however, referred to as overlapped block motion ordisparity compensation techniques (OBMC or OBDC), overlapping blocks canbe used. In OBDC, an image can be separated in several overlappingblocks. Each block can be associated with disparity parameters, such asmotion vectors, which are used for the prediction of the respectiveblock. Given that a block may overlap with multiple other blocks, apixel in such an overlapping region can have multiple predictors thatcan be combined in a multi-hypothesis manner to generate a finalprediction.

FIG. 2 depicts a diagram of an example video encoder 200 in which OBDCcan be used. The encoder 200 may be an encoder for advanced video codingstandard (AVC), otherwise referred to as H.264. In encoder 200, theinput video 202 is sent to an adder 216 that sums the input video frame202 with an output of a disparity compensation (e.g.,motion/illumination change compensation and/or intra-prediction)component 260. The output from the adder 216 is coupled to a transformcomponent 204, followed by a quantization component 206. The output ofthe quantization component 206 is coupled to a variable length coding(VLC) component 208 and an inverse quantization component 210. The bitstream 220 results from the VLC component 208 and information about theencoding process, such as the number of bits required to encode a block,region, or image, and the distortion introduced by such decision, aresent to the loop filter 266 and other components.

The disparity compensation component 260 can generate the predictionsignal given information/decisions from the disparity estimationcomponent 262. Disparity compensation, for example, can be in the formof intra prediction, e.g., making use of samples for prediction frompreviously encoded regions within the current picture, motioncompensated prediction including considerations for illuminationchanges, and can also consider OBDC techniques for motion compensation.The disparity estimation component 262 can perform tasks that mayinclude: (a) determine the appropriate prediction parameters such asinter prediction modes/partitions, motion vectors, illumination changeparameters, and/or intra prediction modes, (b) selectively enable anddisable motion-compensation block-sizes; (c) use certain pictures asmotion-compensation references; (d) adjust the motion estimation searchrange and the number of iterations in joint bi-predictive motionestimation, (e) limit the number of coding modes to be tested given somepredefined conditions or information about the image, among others.Disparity estimation could be done given knowledge that the video willbe encoded using OBDC methods, e.g., the estimation method can considersearch techniques that try to optimize performance given the predictiontechnique that is to be used. The loop filter component 266 can performtasks that may include: (a) adjust the parameters of the in-loopdeblocking filter; (b) switch-off the deblocking filter, among others.

The inverse transform component 212 receives an input from the inversequantization component 210 and sends an output to an adder 226. Theadder 226 receives the signal from the inverse transform component 212and the disparity compensation component 260, and sends a summed signalto a loop filter 266. A picture reference store 264 receives an inputfrom the loop filter 266, and sends an output to the disparitycompensation component 260 and the disparity estimation component 262.The disparity estimation component 262 also receives an input from arate control component (not shown). The loop filter 266 also receives aninput from the rate control component. The input video 202 is also sentto an input of the disparity compensation component 260 and thedisparity estimation component 262.

FIG. 3 depicts a diagram of an example video decoder 300. The decoder300 may be a decoder that includes functionality similar to theH.264/MPEG-4 AVC standard. The decoder 300 receives the bit stream 220,and decodes the bit stream using an entropy (variable length) decoder305, one or multiple inverse quantizers 330, one or multiple inversetransforms 335, and a disparity compensator 310. The entropy decoder 305may extract both header information, including disparity informationsuch as modes, motion vectors, illumination change parameters, intraprediction modes, among others, and quantized and transformed residualdata. Disparity compensation, and more specifically prediction of thesignal, is performed given the header information in 310, while theresidual data are first de-quantized using the inverse quantizer 330 andthen inverse transformed using the inverse transform 335. An adder 355adds the output of the inverse transform 355 and the disparitycompensator 310, and sends the summed result to a loop filter 325. Theoutput of the loop filter 325 is coupled to a reference picture buffer320, which can be used for storing pictures for reference and deliveringan output 350. Prediction in the disparity compensation block 310 couldutilize OBDC techniques.

FIGS. 4A-4C depict some example patterns that can be used for OBDC oroverlapped partition disparity compensation pattern. FIG. 4A is adiagram 410 of an example diamond-shaped OBDC or overlapped partitiondisparity compensation pattern. FIG. 4B is a diagram 440 of an exampleorthogonal-shaped (e.g., square-shaped) OBDC or overlapped partitiondisparity compensation pattern. FIG. 4C is a diagram 470 of an examplecircular-shaped OBDC or overlapped partition disparity compensationpattern. As depicted in FIGS. 4A-C, OBDC techniques can allow predictionblocks or regions to overlap, which results in several pixels beingpredicted simultaneously by multiple disparity parameters, e.g., motionvectors. OBDC can improve the prediction of block boundaries.

In some embodiments, these multiple predictions can be, for example,weighted averages based on the distance of a pixel, for which hypothesesweights are to be derived, which are compared to a center of one or moreneighboring blocks that corresponds to each prediction. In otherembodiments, the distance may be between two motion vectors (e.g.,|mv1−mv2|). This process can predict block boundaries, reduce residualeffects, achieve efficient coding, and reduce blockiness that may occurat prediction boundaries.

FIG. 4B depicts the least complex of the patterns. For example, a centerregion 445 of the diagram 440 of the square pattern of FIG. 4B isdefined by W×H. The block size of the diagram 440 is (2 h+H)×(2 w+W).The overlapped regions can be regions W×h 450, 455, H×w 460, 465, andw×h 470, 475, 480, 485. These regions 450, 455, 460, 465, 470, 475, 480,485 can be overlapped with other patterns.

FIG. 5 depicts example predicted block regions in a diagram 500 in whichdifferent regions are predicted using multi-hypothesis based motioncompensation (e.g., by employing overlapped block motion compensation,including the usage of bi-predictive motion compensation). In someembodiments, for example, overlapped block disparity/motion compensationcan be seen as an instance of multi-hypothesis motion compensation, inwhich a pixel may be predicted using multiple hypotheses. Predictionblocks or regions in this coding structure are allowed to overlap, whichresults in several pixels being predicted simultaneously by multiplemotion vectors. For example, assuming single list prediction, region 514can utilize four predictions, while regions 516 or 518 can utilize twopredictions given the vectors of overlapping blocks. These multiplepredictions may be, for example, weighted averages based on the distanceof a pixel, for which hypotheses weights are to be derived, which arecompared to a center of one or more neighboring blocks that correspondsto each prediction, or for the distance between two motion vectors. Anextension to bi-predictive motion compensation (e.g., B coded picturesor B slices) and multi-hypothesis motion compensation using multiplereferences can also be considered with the above methods.

In FIG. 5 , for instance, block X 510 is depicted, and its neighboringblocks are blocks A-H 515-560. Each block is of size W×H and theoverlapping happens on each direction with a width of w and a height ofh. The pixels in region P₀ 514 of the diagram 500 are predicted usingthe motion vectors from blocks A 515, B 520, D 530, and X 510, whilepixels in region Pi 516 are predicted using the motion vectors fromblocks B 520 and X 510 only. Furthermore, the weighting considered foreach pixel within each region can relate to the distance of that pixelfrom the center of each OBDC block that is used for its prediction. Forexample, in the case of pixel y₀ 533 in FIG. 5 , which belongs to regionP₃ 518, its value can be predicted as:

value_(y) ₀ =w(dist_(y) _(0,) _(D))×MCPvalue({right arrow over (MV_(D))})+w(dist_(y) _(0,) _(X))×MCPvalue({right arrow over (MV_(X))})  Eq. (1)

where dist_(y) _(0,) _(D) and dist_(y) _(0,) _(X) are the distances ofy₀ 533 from the centers of block D 530 and X 510, {right arrow over(MV_(D))} and {right arrow over (MV_(X))} are the motion and weightingparameter vectors for blocks D 530 and X 510, and MCPValue( ) and w( )are the values of the motion compensation process and the weighting forthe prediction, respectively. This expression can be generalized to:

$\begin{matrix}{{{value_{y_{0}}} = {\sum\limits_{k}{{w_{k}\left( {dist_{y_{0},{block}_{k}}} \right)} \times MCPval{{ue}\left( \overset{\rightarrow}{{MV}_{block_{k}}} \right)}}}},} & {{Eq}.(2)}\end{matrix}$

where k corresponds to the index of all blocks in the neighborhood ofblock X 510, including X 510. Generally, regions P₀-P₇ in FIG. 5 can bepredicted using multi-hypothesis based motion compensation with motionvectors signaled for block X 510 and all its neighbors.

In some embodiments, weighting (e.g., scaling parameters, illuminationcompensation) may be applied to the prediction samples of eachhypothesis given the values of the motion vectors (or other parametricmotion estimate values) of each hypothesis to indicate how much and ifOBDC should be used. The weighting can be adapted based on semanticsassociated with the motion vectors, or the disparity compensationparameters, e.g., apart from motion vectors, illumination parameters,reference indices, intra prediction modes, etc. For example, similarmotion vectors may have similar weights and dissimilar motion vectorsmay have dissimilar weights. The availability of a predictor, especiallyin the case that the neighbor is of a different type (e.g., a single ormultiple list that is inter predicted or an intra predicted block) canalso affect the weighting parameters.

Square, orthogonal, or similarly-configured regions are used in theMPEG-4 video coding standard (and others), in part perhaps for theirsimplicity. In some OBDC embodiments, for example, some types of OBDCmethods can require, for best performance, that all overlappingpredictions be jointly optimized at the encoder. Some OBDC embodimentsmay require information for blocks with predictions in all directions.For the encoder to first synthesize the entire prediction or alldependent prediction regions prior to creating and coding, (e.g. use oftransform, quantization and entropy coding, the residual signals) theinformation from the neighboring blocks may need to be already availablebefore creating the prediction in some embodiments. The consideration ofrate distortion optimized techniques for motion estimation and modedecision may require multiple iterations or computations considering thedependencies of adjoining blocks. Hence, the encoder may have to beconfigured to handle these type of computations.

Similarly, at the decoder, some techniques may be non-causal and mayrequire that predictions from all overlapping partitions are availablebefore reconstructing a certain sample. This non-causality may beconsidered in the performance for some architectures due to datadependencies, memory requirements and related operations. Morespecifically, the prediction signal may first be generated, stored in atemporary memory, and wait until the residual signal is available forfinal reconstruction. Alternatively, a decoder may wait for allinformation to be available before performing any operations.

FIG. 6 depicts a diagram 600 of an example OBDC embodiment that usesoverlapping areas in all directions. The blocks can be generallyreferred to as transform blocks 610. The blocks 610 are separated by atransform grid 620, and each of the blocks can have an overlapping area630 with adjacent blocks. In the embodiment of FIG. 6 , the residual fora certain block (e.g., X 645) is computed based on information from allblocks (e.g., A-H 635-640) that provide prediction information for thisregion. In some embodiments, described below, the computation of theresidual can be constrained in one or two directions. In other exampleembodiments, prediction can be extended in three or more dimensions(e.g., three-dimensional prediction).

For example, in some embodiments, assuming a raster scanning order(e.g., left-right & top-bottom), regions on the left and/or above areconsidered for performing OBDC (e.g., FIG. 7A-FIG. 7C). This process canmove the residual generation process from the center of the motioncompensated block to its top-left corner. This causality may allow theresidual to be immediately computed without requiring any knowledge forany future blocks, which may promote optimization. For example, RateDistortion Optimization techniques, such as Lagrangian optimization, maybe used. Moreover, entropy decoding, motion compensation, and generationof the residual samples may execute in parallel, which may use memory orgenerate samples efficiently.

FIGS. 7A-7C depict diagrams of patterns for examples of overlappedpartition motion compensation. The diagrams 710, 740, 770 of FIG.7A-FIG. 7C respectively depict example patterns for OBDC or overlappedpartition disparity compensation using a causal overlapping area (andassuming a raster scanning order). FIG. 7A depicts a diagram 710 for anexample diamond pattern, in which the process extends to the right andbottom of the pattern. FIG. 7B depicts a diagram 740 for an exampleblock/square pattern, in which the process extends to the right andbottom of the pattern. FIG. 7C depicts a diagram 770 for an examplecircular pattern, in which the process extends to the right and bottomof the pattern. In each of the diagrams 710, 740, 770, regions on theleft and above are considered for performing OBDC.

The diagrams of FIG. 8A-FIG. 8B depict OBDC with different OBDCpatterns. For example, the diagram of FIG. 8A depicts an example clippeddiamond pattern 810. The diagram of FIG. 8B depicts an example blockpattern 850. A block may be extended using either method from size W×H,where W represents the width and H represents the height of the block byw pixels horizontally and h pixels vertically on the right and bottomdirections. These extensions can correspond to the overlapping areaswith future blocks. In a coding system, for the original block of sizeW×H, motion compensation may be performed, and the residual informationgenerated, given the motion information derived for that block, alongwith the motion information derived from its neighboring partitions thatoverlap with this region. The residual may then be transform coded,quantized, and entropy encoded. The residual can be decoded withoutrequiring information from future blocks within the image. For example,samples in the region P₀ 854, P₁ 858, P₂ 856, and P₃ 852 within FIG. 8Bcan be predicted as:

value_(y∈P) ₀ =w(dist_(y∈P) _(0,) _(A))×MCPvalue({right arrow over (MV_(A))})+w(dist_(y∈P) _(0,) _(B))×MCPvalue({right arrow over (MV_(B))})+w(dist_(y∈P) _(0,) _(D))×MCPvalue({right arrow over (MV_(D))})+w(dist_(y∈P) _(0,) _(X))×MCPvalue({right arrow over (MV_(X))})  Eq. (2)

value_(y∈P) ₁ =w(dist_(y∈P) _(1,) _(B))MCPvalue({right arrow over (MV_(B))})+w(dist_(y∈P) _(1,) _(X))×MCPvalue({right arrow over (MV_(X))})  (Eq. (3)

value_(y∈P) ₂ =w(dist_(y∈P) _(2,) _(B))×MCPvalue({right arrow over (MV_(B))})+w(dist_(y∈P) _(2,) _(C))×MCPvalue({right arrow over (MV_(C))})+w(dist_(y∈P) _(0,) _(X))×MCPvalue({right arrow over (MV_(X))})  Eq. (4)

value_(y∈P) ₃ =w(dist_(y∈P) _(3,) _(A))×MCPvalue({right arrow over (MV_(A))})+w(dist_(y∈P) _(2,) _(X))×MCPvalue({right arrow over (MV_(X))})  Eq. (5)

The prediction of regions P₄ 860, P₅ 862, P₆ 864, and P₇ 866 isconstructed after the motion for the adjacent regions has been derived.The predictions of regions P₀ 854, P₁ 858, P₃ 852, and other areas fromX 870, apart from P₂ 856, P₄ 860, P₅ 862, P₆ 864, and P₇ 866, whichutilize, in the case of single list prediction, a single motion vector({right arrow over (MV_(X))}), are considered in generating the residualerror for the current block. This concept can be extended forbi-prediction, with two motion vectors for each partition (e.g., as usedin B coded pictures), and multi-hypothesis prediction.

FIG. 9 depicts a diagram of an example OBDC embodiment that uses causaloverlapping areas. FIG. 9 depicts an example that can obviatedependencies on “future” or neighboring blocks. For example, overlappingis considered on the left and top boundaries of the blocks. The lighterareas (as depicted) are predicted with one sample. The darker areas(e.g., the overlapped areas) have predictions from two or four samples.

Some embodiments may support intra coding, including intra prediction.For instance, the pixels of a block can be predicted using a variety oftechniques that consider already available and reconstructed samplesfrom neighboring regions. As an example, a block can be predicted usingthe first column samples from the left neighbor block (horizontalprediction), the samples of the last row of the above neighbor block(vertical prediction), or using various combinations of such samples.After prediction, the residual signal can be computed, transformed,quantized, and entropy encoded. For each block, a signal can be providedthat defines the intra prediction method that is to be used for thecurrent block.

In some embodiments, a block can be coded without using a transform. Iftransform coding is skipped for a block (e.g., for a skipped block orfor a block that no transformed residuals are present) then it may bedeemed as being transform coded (or may be fully represented forreconstruction purposes). In these aspects, transformed residuals arepresent for the one or more neighboring blocks for which the presence ofa transformed residual is signaled in the bit stream. In someembodiments, the transform may be linked with the residual information,and if no residual information is present, then no transform may beinvolved.

Employing a similar technique as described above for inter prediction,some embodiments may use overlapped block disparity compensation forpredicting intra regions, as described for example with reference toFIG. 10A-FIG. 10C.

FIG. 10A depicts a diagram 1010 of intra prediction with overlappingconsiderations using horizontal prediction. FIG. 10B depicts a diagram1040 of intra prediction with overlapping considerations using verticalprediction. FIG. 10C depicts a diagram 1070 of intra prediction withoverlapping considerations using diagonal prediction. In FIGS. 10A-C,the prediction modes can differ for each of the figures, and OBDC can beused with spatial boundaries.

For example, in FIG. 10B, a block of size (W+w)×(H+h) is predicted usinga predefined intra prediction mechanism, e.g., Pred_(A). Afterprediction, the residual of the upper left region of size W×H iscomputed, transformed and its coefficients quantized. The inverseprocess is applied to this information to generate the reconstructedresidual, which is then added to the prediction of the upper leftregion. Then, the next region of size (W+w)×(H+h) is predicted, e.g.,Pred_(B). However, the prediction of the first w×(H+h) pixels is alsoaffected and possibly enhanced by the original prediction of its leftneighbor. More specifically, the final prediction of these samples canbe generated by considering (e.g., via using weightedaveraging=>Pred_(Final)=w_(A)×Pred_(A)+w_(B)×Pred_(B)) the predictionsutilized from previously coded and adjacent partitions, and theprediction as dictated by the coding mode of this block.

In some embodiments, the prediction direction of the neighboringpartitions are considered independent of the prediction samples utilizedfor these partitions. Using these directions, multiple predictions foroverlapping regions can be generated. The multiple predictions can becombined with the region signaled for the macroblock to generate thefinal prediction.

For instance, assume that for a block X, its top-left neighboring blockuses DC prediction, the neighboring blocks above and above to the rightof block X uses vertical prediction, and the neighboring block on theright of block X uses horizontal prediction, while X signals verticalprediction. In this example, the prediction samples can be generated bycombining the prediction samples generated by each one of thesedirections separately and then averaging them together. Averaging couldbe done using equal weights, while we may also average the samples bygiving a significant weight (W_(x)) to samples predicted directly from Xcompared to the weights for all other prediction samples. In someembodiments, W_(x)=4×W_(neighbor) where W_(neighbor) represent theweights for the neighbors. This process is a multi-hypothesis intraprediction method with low signaling overhead. Intra and interpredictions could also be combined using OBDC techniques. For example,some pixels within a block can be predicted using both inter and intramechanisms, depending on the prediction method used for the neighboringpartitions.

In some embodiments, overlapping and non-overlapping prediction blockscan be used within the same picture. A prediction block can be signaledas overlapping or non-overlapping within the bit stream through theaddition of a signal element, or the prediction block can be derivedthrough semantics or relationships with other blocks in the bit stream.For example, whether a prediction block uses overlapped prediction ornot may be determined by associating the block with a reference indexthat points to a reference picture that is associated with OBDC coding.For some modes, which do not transmit any parameters (e.g., the SKIP orDIRECT modes supported in the H.264/AVC standard), a determination canbe made on whether OBDC is used based on the neighboring partitions. Forexample, if all (or substantially all or most) partitions use OBDC, thenOBDC could also be utilized by the current partition. Otherwise, normalprediction can be used.

In some embodiments, if neighbors in a given direction, or if neighborson a side or above (or below) utilize OBDC, then OBDC is also used forthe current block.

FIG. 11 depicts a diagram 1100 of an example of adaptively utilizingOBDC within a picture. For example, FIG. 11 depicts a mixed embodimentthat has the above described causal variation of OBDC used for otherblocks, overlapping prediction blocks without prediction propagation,and blocks that do not consider OBDC. The different types of techniquesdepicted in FIG. 11 can provide various ways to handle block boundaries.For example, OBDC may be used for blocks with small differences betweenneighboring blocks. OBDC may thus be used for blocks that differslightly from their neighbors, and other techniques used for blockswhere larger differences between the block boundaries exist. Thissituation can occur, for example, if there is a boundary between twoobjects in the image and there is a large difference in the blockboundary. In this example situation, OBDC may be deterred or disabledfor those block boundaries. In some embodiments, OBDC prediction couldalso be disabled or constrained on boundaries between partitions thatuse different prediction types. For example, if the current block isusing bi-prediction but one of its neighbors is using a single listprediction, then OBDC may be only considered for the common listprediction. If the blocks use different lists, then OBDC may not beconsidered.

Some blocks in FIG. 11 can have internal overlapping of regions andexternal overlapping with regions. Internal overlapping can involveperforming OBDC within a macroblock and using the block partitioning ofthat macroblock. External overlapping with OBDC can involve using theblock partitioning of neighboring macroblocks. In some embodiments,internal overlapping can involve one prediction, and externaloverlapping can involve multiple predictions. FIG. 11 has transformblocks 1120 and overlapping OBDC blocks 1130. In some embodiments, theOBDC blocks 1130 may extend OBDC towards the right and bottom of therespective block. FIG. 11 also has overlapping prediction blocks 1140with no prediction propagation. These overlapping prediction blocks 1140can utilize prediction samples from neighboring blocks, and may notextend prediction to future blocks. Some blocks may not have OBDC (e.g.,blocks with no OBDC for internal or external pixels, and no OBDC forfuture pixels).

In some embodiments, a restriction may be applied on how overlapping isused. For example, a block coding mode may be signaled for a blockaccording to which overlapping can be performed using information, suchas motion vectors (MVs) and illumination parameters, from previouslycoded adjacent partitions. The block coding may be signaledindependently of the information of the current partition. OBDCprediction may also be independent of information from other partitions(e.g., Block A in FIG. 11 ).

In some embodiments, another type of OBDC block mode can signal thatOBDC is not considered internally within the current block (e.g., BlockB in FIG. 11 ), and that previously coded partitions do not provideprediction information for the current block regardless of their codingmode. This type of OBDC block mode may be allowed to utilize predictioninformation from the current block for other, not yet coded neighboringblocks. In FIG. 11 , an additional coding mode can be introduced in thesame context, which deters, if signaled, consideration of OBDCprocessing for prediction (e.g., Block C in FIG. 11 ). Selectively usingOBDC on fewer than all blocks may conserve computational resources andpromote efficiency.

FIGS. 12A-D depict example OBDC embodiments with variable predictionblock sizes. FIG. 12A depicts OBDC for external and internal blockedges. FIG. 12B depicts OBDC for external block edges. FIG. 12C depictsOBDC used where a block's neighbor can include an overlapping modeblock. FIG. 12D depicts OBDC for overlapping mode blocks. Some of thesevariable blocks, for example, can have a block size equal to 4×4 pixels,8×8 pixels, or 16×16 pixels.

In the blocks of FIG. 12A-FIG. 12D, the region of overlapping can alsovary based on the block size, or the region could remain the same fromblock to block. Where the region does not change from block to block,additional control may be obviated. In some embodiments, OBDC may beused at macroblock boundaries to reduce complexity, for example, asdepicted with diagram 1225 of FIG. 12B. In some other embodiments,OBDC-based prediction may not occur with previously-encoded neighborsthat have been predicted using partition modes of a certain size (e.g.,smaller than 16×16 as in FIG. 12C), or certain prediction modes (e.g.,intra prediction). In other embodiments, OBDC may not be used where acurrent block itself is of a particular prediction mode, e.g., not 16×16(FIG. 12D).

Although raster-scan encoding may be commonly considered in many videocoding systems, different coding orders can also be considered for avariety of reasons, such as for coding efficiency, error resiliency,etc. The proposed OBDC scheme can be extended to support these cases byapplying overlapped prediction for blocks that have not yet beentransform coded. For example, block (or region) N can be predicted usingOBDC by utilizing prediction from these N−1 blocks (or regions). Theprediction for block (or region) N can be conducted by considering whichblocks (or regions) within this N−1 block (or region) set areneighboring blocks (or regions) to block (or region) N. Also, block (orregion) N can provide prediction information for all its surroundingblocks (or regions) that have not yet been coded. In some embodiments,for example, there can be prediction using OBDC with N−1 blocks (orregions) that may follow a fixed coding order (e.g., raster scan,spiral, zig-zag, etc.) or an arbitrary coding order.

FIG. 13 depicts an example OBDC embodiment with a spiral-basedmacroblock coding order. FIG. 13 depicts transform blocks 1320, atransform grid 1330, prediction blocks 1340, and overlapping areas 1350.For the first block 1305 OBDC can be considered in all directions aroundthis block. For a second block 1310, which is located on the right ofthe first block 1305, OBDC is considered for the not yet encoded regionson the right, top, and bottom. Similarly for a third block 1315, OBDCprediction is extended to the not yet encoded regions on the right,left, and bottom.

FIG. 14 depicts an example OBDC embodiment with a random macroblockcoding order. For example, FIG. 14 depicts transform blocks 1420, atransform grid 1430, prediction blocks 1440, and overlapping areas 1450.FIG. 14 depicts a random coding order where the OBDC prediction isconsidered for regions not yet encoded. In such scenarios, the shape andsize of the prediction block can be dynamic. The OBDC shape can befixed, e.g., a rectangle or similar configuration, or can be variabledepending on whether a neighboring block has or has not been encoded.

FIGS. 15A-B depict diagrams 1500, 1550 with examples where the shape ofthe OBDC prediction is dependent upon regions that have been previouslyencoded. In FIG. 15A, the previously coded regions 1520 are to the upperleft of the block 1540. In FIG. 15B, the previously coded regions 1570are to the top and upper left of the block 1590. In some embodiments,the OBDC shape can vary depending on the encoding of a neighboringblock.

In some embodiments, the size and shape of the OBDC block, and theweighting applied to the different predictions can be based on thedisparity compensation parameters (e.g., motion vectors, referenceindices or the temporal distance or some other relationship betweenthese references, or/and illumination parameters) of adjacentpartitions. For example, OBDC block characteristics and weighting may becomputed according to equation (3), below

$\begin{matrix}{{{value_{y_{0}}} = {\sum\limits_{k}{{w_{k}\left( {dist}_{y_{0},{block}_{k}} \right)} \times {f_{k}\left( {\overset{\rightarrow}{{MV}_{block_{k}}},\overset{\rightarrow}{{MV}_{X}}} \right)} \times {{MCPvalue}\left( \overset{\rightarrow}{{MV}_{{block}_{k}}} \right)}}}},} & {{Eq}.(3)}\end{matrix}$

where functions ƒ_(k)({right arrow over (MV_(block) _(k) )}, {rightarrow over (MV_(X))}) depend on the motion and weighting parameterrelationships between X and its neighboring blocks.

For example, a significant difference in the motion vectors of block Xand block with k_(index 0) may imply that block X and the block withk_(index 0) differ significantly as well. Moreover, a significantdifference in the motion vectors of two or more blocks may imply asignificant probability that the respective motion vectors of each blockmay relate to (e.g., be based on) different objects or other imagefeatures. This may imply that the usefulness of OBDC, under theseconstraints, may be somewhat limited. In some embodiments, the functionƒ₀({right arrow over (MV_(block) ₀ )}, {right arrow over (MV_(X))})=0may be used. Where the motion vectors are significantly (e.g.,substantially) similar, e.g., where the difference between motionvectors is below a threshold, T: ∥{right arrow over (MV_(block) ₀)}−{right arrow over (MV_(X))}∥<T, the prediction from block₀ can beconsidered to have greater significance and the weighting of block₀ canbe correspondingly increased. In some embodiments, these relationshipsand related weighting parameters could be pre-defined within the encoderand decoder. In some embodiments, these relationships and weightingparameters could be signaled and changed within the bit stream through,for example, defining and signaling new parameters in the sequence orpicture parameter sets, or through the slice header of a video codec.

FIG. 16 depicts a flow chart with an example process 1600 for predictionusing causal overlapping. The example process 1600 depicted in the flowchart involves receiving or accessing a bit stream of video information(1610). The process 1600 involves determining whether OBDC is allowed orsignaled in a video bit stream (1620), and/or determining if OBDC isalso allowed or signaled for blocks that neighbor a block in the bitstream (1630). If OBDC is allowed or signaled in the bit stream and theneighboring blocks, prediction can be performed for a block in the bitstream that utilizes OBDC for one or more regions of the block's edgesthat neighbors previously pre-coded blocks (1640). Further, if OBDC isallowed for the block in the bit stream (1625), information (e.g.,motion vector information) from the block is used to provide an initialprediction of uncoded regions (1650).

OBDC can be allowed or signaled for the block and/or for the neighboringblocks based on, for example, one or more of the various OBDC allowanceor signaling techniques (e.g., signaling via a signaling element in thebit stream, signaling via semantics or relations with other blocks inthe bit stream, signaling via a reference index pointing to a referencepicture, allowing/enabling OBDC when blocks are pre-coded, etc.)described within this disclosure. The flow chart of FIG. 16 can also beused with various coding orders (e.g., spiral, vertical, horizontal,arbitrary, raster scan, zig-zag, etc.) and/or other predictiontechniques (e.g., inter prediction, intra prediction, prediction usingmulti-hypotheses, prediction with various amounts and types ofdependencies on neighboring blocks, prediction with various types ofoverlapping, prediction with various types of propagation, predictionwith various types of block sizes and block boundaries, etc.), asdescribed within this disclosure. Some techniques can be used with theflow chart of FIG. 16 to causally perform overlapped disparitycompensation as a function of the disparity compensation parameters,e.g., motion vectors, illumination change parameters among others, toprovide motion and texture information to the bit stream.

The concepts of OBDC can also be utilized within codecs that supportfunctionalities such as scalability or multi-view functionality. Inthese environments, apart from inter and intra prediction mechanisms,prediction can also be a cross-layer type prediction (e.g., predictioncoming from a previously-decoded lower-quality or resolution version ofthe current image), or a cross-view type prediction (e.g., predictioncoming from a previously-decoded image belonging to a different view).These predictions may have been previously modified before being used aspredictions to correct for different errors or known disparities.Modifications of these predictions may include filtering,interpolation/scaling, and/or affine projection. OBDC could also be usedwhen predicting from such references, while the conditions of utilizingOBDC or not utilizing OBDC for each block can be modified according tothe characteristics of these references. For example, the weightingparameters for OBDC can be increased in a scalable video coding systemfor a prediction coming from a previous, lower-quality version of thesame reference, or, for the multi-view video coding case, from a viewthat is closer in space than another view. Furthermore, it is alsopossible to consider sharing disparity compensation parameters betweenlayers or views. For example, if a layer or view utilized OBMD, a higherlayer or different view can copy, without signaling, the same OBMDparameters for its own prediction.

In one or more of the example embodiments disclosed herein, there can bea system, method, or a computer program product in which the intracoding and/or intra prediction includes any combination of verticalprediction, horizontal prediction, or diagonal prediction, and mayemploy template matching, a frequency domain method, and/or a spatialdisplacement method, among others. The inter prediction may includebi-predictive inter prediction and/or multi-hypothesis inter prediction.The macroblocks can have various shapes and patterns, such as anorthogonal pattern, a rectangular pattern, a square pattern, a diamondpattern, a circular pattern, and/or polygons with N number of edges. Theprediction can also include a mesh-based prediction, in which themesh-based prediction may have triangular shapes.

FIG. 17 depicts an example system model. The disclosed techniques can beused on one or more computers 1705A, 1705B. One or more methods and/oralgorithms and/or processes herein can be implemented with, or employedin computers and/or video display 1720, transmission, processing, andplayback systems. The computers described herein may be any kind ofcomputer, either general purpose, or some specific purpose computer suchas a workstation. The computer 1705B may be, e.g., an Intel or AMD basedcomputer, running Windows XP, Vista, or Linux, or may be a Macintoshcomputer. In some embodiments, the computer can also be, e.g., ahandheld computer, such as a PDA 1715, cell phone 1715, or laptop 1705A.The computer may also refer to machines or parts of a machine for imagerecording or reception 1725, 1730, 1735, processing, storage 1740, anddistribution of data, in particular video data.

Computer and/or graphic programs may be written in C or Python, or Java,Brew or any other programming language. The programs may be resident ona storage medium, e.g., magnetic or optical, e.g. the computer harddrive, a removable disk or media such as a memory stick or SD media,wired or wireless network based or Bluetooth based Network AttachedStorage (NAS), Storage Area Network (SAN), or other removable medium.The programs may also be run over a network 1750, for example, with aserver or other machine sending communications to the local machine,which allows the local machine to carry out the operations describedherein.

Although only a few embodiments have been disclosed in detail above,other embodiments are possible and the inventor(s) intend these to beencompassed within this specification. The specification describesspecific examples to accomplish a more general goal that may beaccomplished in another way. This disclosure is intended to beexemplary, and the claims are intended to cover any modification oralternative which might be predictable to a person having ordinary skillin the art.

Embodiments of the subject matter and the functional operationsdescribed in this specification can be implemented in digital electroniccircuitry, or in computer software, firmware, or hardware, including thestructures disclosed in this specification and their structuralequivalents, or in combinations of one or more of them. Embodiments ofthe subject matter described in this specification can be implemented asone or more computer program products, e.g., one or more modules ofcomputer program instructions encoded on a computer readable medium forexecution by, or to control the operation of, data processing apparatus.The computer readable medium can be a machine-readable storage device1740, a machine-readable storage substrate, a memory device, acomposition of matter effecting a machine-readable propagated, processedcommunication, or a combination of one or more of them. The term “dataprocessing apparatus” encompasses all apparatus, devices, and machinesfor processing data, including by way of example a programmableprocessor, a computer, or multiple processors or computers. Theapparatus can include, in addition to hardware, code that creates anexecution environment for the computer program in question, e.g., codethat constitutes processor firmware, a protocol stack, a graphicalsystem, a database management system, an operating system, or acombination of one or more of them.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, and it can bedeployed in any form, including as a stand alone program or as a module,component, subroutine, or other unit suitable for use in a computingenvironment. A computer program does not necessarily correspond to afile in a file system. A program can be stored in a portion of a filethat holds other programs or data (e.g., one or more scripts stored in amarkup language document), in a single file dedicated to the program inquestion, or in multiple coordinated files (e.g., files that store oneor more modules, sub programs, or portions of code). A computer programcan be deployed to be executed on one computer or on multiple computersthat are located at one site or distributed across multiple sites andinterconnected by a communication network.

The processes and logic flows and figures described and depicted in thisspecification can be performed by one or more programmable processorsexecuting one or more computer programs to perform functions byoperating on input data and generating output. The processes and logicflows can also be performed by, and apparatus can also be implementedas, special purpose logic circuitry, e.g., an FPGA (field programmablegate array) or another programmable logic device (PLD) such as amicrocontroller or an ASIC (application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor can receive instructions and data from a read only memory or arandom access memory or both. The essential elements of a computer are aprocessor for performing instructions and one or more memory devices forstoring instructions and data. Generally, a computer can also include,or be operatively coupled to receive data from or transfer data to, orboth, one or more mass storage devices for storing data, e.g., magnetic,magneto optical disks, or optical disks. However, a computer need nothave such devices. Moreover, a computer can be embedded in anotherdevice, e.g., a mobile telephone, a personal digital assistant (PDA), amobile audio player, a Global Positioning System (GPS) receiver, to namejust a few. Computer readable media suitable for storing computerprogram instructions and data include all forms of non volatile memory,media and memory devices, including by way of example semiconductormemory devices, e.g., EPROM, EEPROM, and flash memory devices; magneticdisks, e.g., internal hard disks or removable disks; magneto opticaldisks; and CD ROM and DVD-ROM disks. The processor and the memory can besupplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, some embodiments of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube), LCD (liquidcrystal display), or plasma display monitor 1720, for displayinginformation to the user and a keyboard and a selector, e.g., a pointingdevice, a mouse, or a trackball, by which the user can provide input tothe computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback, e.g., visual feedback,auditory feedback, or tactile feedback; and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

Some embodiments of the subject matter described in this specificationcan be implemented in a computing system that includes a back endcomponent, e.g., as a data server, or that includes a middlewarecomponent, e.g., an application server, or that includes a front endcomponent, e.g., a client computer having a graphical user interface ora Web browser through which a user can interact with an embodiment ofthe subject matter described is this specification, or any combinationof one or more such back end, middleware, or front end components. Thecomponents of the system can be interconnected by any form or medium ofdigital data communication, e.g., a communication network. Examples ofcommunication networks include a local area network (“LAN”) and a widearea network (“WAN”), e.g., the Internet.

The computing system can include clients and servers. A client andserver can be remote from each other and interact through acommunication network. The relationship of client and server can ariseby virtue of computer programs running on the respective computers andhaving a client-server relationship to each other.

While this disclosure contains many specifics, these should not beconstrued as limitations on the scope of the invention or of what may beclaimed, but rather as descriptions of features specific to particularembodiments of the invention. Certain features that are described inthis specification in the context of separate embodiments can also beimplemented in combination in a single embodiment. Conversely, variousfeatures that are described in the context of a single embodiment canalso be implemented in multiple embodiments separately or in anysuitable subcombination. Moreover, although features may be describedabove as acting in certain combinations and even initially claimed assuch, one or more features from a claimed combination can in some casesbe excised from the combination, and the claimed combination may bedirected to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order depicted or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems cangenerally be integrated together in a single software or hardwareproduct or packaged into multiple software or hardware products.

The term “algorithm” can refer to steps, methods, processes, schemes,procedures, operations, programs, guidelines, techniques, sequences,and/or a set of rules or instructions to achieve the results describedherein. For example, an algorithm can be a set of video processinginstructions for a hardware and/or software video processor. Thedisclosed algorithms can be related to video and can be generated,implemented, associated, and/or employed in video-related systems and/orany devices, machines, and/or articles of manufacture for theprocessing, compression, storage, transmission, reception, testing,calibration, display, and/or any improvement, in any combination, forvideo data.

An embodiment of the present invention may relate to one or more of theexamples enumerated below.

-   -   1. A method for motion compensation of images with overlapped        block disparity compensation (OBDC), the method comprising the        steps of:        -   determining if OBDC is enabled in a video bit stream;        -   determining if OBDC is enabled for one or more macroblocks            that neighbor a first macroblock within the video bit            stream, wherein the one or more neighboring macroblocks are            transform coded; and        -   if OBDC is enabled in the video bit stream and for the one            or more neighboring macroblocks, performing prediction for a            region of the first macroblock that has an edge adjacent            with the one or more neighboring macroblocks.    -   2. The method of enumerated example embodiment 1, wherein the        step of determining if OBDC is enabled for the video bit stream        or the one or more macroblocks comprises any combination of the        steps of : detecting a signaling instruction within the bit        stream or the one or more macroblocks to enable OBDC;        determining a semantic or relationship in the bit stream or the        one or more macroblocks to enable OBDC; determining neighboring        block information or differences in motion vectors to enable        OBDC; or detecting an association of the one or more macroblocks        with a reference index that points to a reference picture that        is associated with OBDC coding.    -   3. The method of enumerated example embodiment 1, further        comprising the step of applying a coding order.    -   4. The method of enumerated example embodiment 3, wherein the        step of applying the coding order comprises utilizing a raster        scan coding order, a horizontal coding order, a vertical coding        order, an arbitrary coding order, or a zig-zag coding order.    -   5. The method of enumerated example embodiment 1, further        comprising the step of applying another type of prediction to        the OBDC prediction.    -   6. The method of enumerated example embodiment 4, wherein the        other type of prediction comprises inter prediction, intra        prediction, cross-layer prediction, cross-view prediction,        prediction using multi-hypothesis, or prediction with        dependencies for the one or more neighboring macroblocks.    -   7. The method of enumerated example embodiment 4, wherein the        other type of prediction further comprises prediction with a        type of overlapping, prediction with a type of propagation,        prediction that is independent of information of future        macroblocks, or prediction with a plurality of macroblock sizes        or macroblock boundaries.    -   8. The method of enumerated example embodiment 4, wherein the        type of overlapping comprises internal overlapping of the region        of the first macroblock or external overlapping of the region of        the first macroblock, wherein the internal overlapping of the        region comprises overlapping the region using information from        one or more pixels of the first macroblock, and the external        overlapping of the region comprises overlapping the region using        information from pixels of one or more regions of the one or        more neighboring macroblocks.    -   9. The method of enumerated example embodiment 4, wherein the        prediction with a type of propagation comprises prediction with        propagation in a pre-determined direction.    -   10. The method of enumerated example embodiment 1, wherein the        macroblocks form a rectangular pattern, a square pattern, a        diamond pattern, or a circular pattern, and wherein the        prediction extends in one or two directions for the pattern.    -   11. The method of enumerated example embodiment 1, wherein the        macroblocks form an orthogonal pattern, or polygons with N        number of edges.    -   12. The method of enumerated example embodiment 1, wherein the        prediction comprises a mesh-based prediction, wherein the        mesh-based prediction comprises triangular shapes.    -   13. The method of enumerated example embodiment 1, wherein the        prediction extends in at least three dimensions.    -   14. The method of enumerated example embodiment 1, further        comprising the steps of:        -   generating residual information from the prediction, the            residual information including information for the first            macroblock and the one or more neighboring macroblocks,            wherein the residual information comprises motion            information;        -   transform coding the residual information;        -   quantizing the transform coded residual information; and        -   entropy encoding the quantized information.    -   15. The method of enumerated example embodiment 7, further        comprising the step of decoding the residual, wherein the step        of decoding is independent of information from future        macroblocks in an image of the video bit stream.    -   16. The method of enumerated example embodiment 8, wherein any        of the predictions comprises one or more operations from        filtering, interpolation, scaling, or affine projection.    -   17. The method of enumerated example embodiment 1, further        comprising sharing one or more disparity compensation parameters        or modes amongst one or more views or layers.    -   18. The method of enumerated example embodiment 1, further        comprising copying one or more disparity compensation parameters        or modes amongst one or more views or layers.    -   19. The method of enumerated example embodiment 1, further        comprising the step of using information for the prediction of        the region of the first macroblock to perform prediction for one        or more regions of another neighboring macroblock, where the        other neighboring macroblock is non-transform coded.    -   20. The method of enumerated example embodiment 1, wherein the        step of performing the prediction comprises applying OBDC to a        subset of directions that are available for prediction for the        first macroblock.    -   21. The method of enumerated example embodiment 1, wherein        transformed residuals are present for the one or more        neighboring macroblocks for which a presence of a transformed        residual is signaled in the video bit stream.    -   22. A method for motion compensation of images with overlapped        block disparity compensation (OBDC), the method comprising the        steps of:        -   determining if OBDC is enabled in a video bit stream;        -   determining if OBDC is enabled for a first macroblock within            the video bit stream, wherein the first macroblock is            transform coded, and wherein the first macroblock is            adjacent to one or more neighboring macroblocks; and        -   if OBDC is enabled in the video bit stream and for the first            macroblock, performing prediction for a region of the one or            more neighboring macroblocks using information from the            first macroblock, wherein the region comprises a            non-transform coded region.    -   23. The method of enumerated example embodiment 22, wherein the        information comprises motion vector information, texture        information, or information associated with a pixel.    -   24. The method of enumerated example embodiment 22, wherein the        step of determining if OBDC is enabled for the video bit stream        or the first macroblock comprises one or more steps comprising:        detecting a signaling instruction within the bit stream or the        first macroblock to enable OBDC; determining a semantic or        relationship in the bit stream or the first macroblock to enable        OBDC; determining neighboring block information or differences        in motion vectors to enable OBDC; or detecting an association of        the first macroblock with a reference index that points to a        reference picture that is associated with OBDC coding.    -   25. A method for disparity compensation of images with        overlapped block disparity compensation (OBDC), the method        comprising the steps of:        -   determining if OBDC is enabled in a bit stream of video            information;        -   determining a first region of a first macroblock within the            bit stream; and        -   determining whether one or more residual regions in one or            two macroblocks that are transform coded and adjacent to the            first macroblock are enabled for overlapping prediction;        -   if the bit stream is enabled for OBDC and the one or more            residual regions are enabled for overlapping prediction,            -   predicting pixels in the first region of the first                macroblock using motion vectors from only the one or                more residual regions in the one or two adjacent                macroblocks; and            -   weighting the pixels in the first region as a function                of a distance of the pixels from an area of the one or                two adjacent macroblocks.    -   26. The method of enumerated example embodiment 25, wherein the        prediction for the pixels comprises a causal prediction.    -   27. The method of enumerated example embodiment 26, wherein the        weighting comprises a weighted average that is based on the        distance.    -   28. The method of enumerated example embodiment 25, wherein the        OBDC comprises computing a residual of the first macroblock that        is independent of information from future macroblocks.    -   29. The method of enumerated example embodiment 25, wherein the        first region is neighboring a first boundary of the first        macroblock.    -   30. The method of enumerated example embodiment 25, wherein the        overlapped motion compensation is computed independent of        information from a future or adjacent macroblock.    -   31. The method of enumerated example embodiment 25, wherein the        predicting step comprises intra coding or intra prediction.    -   32. The method of enumerated example embodiment 25, wherein the        intra coding or intra prediction comprises one or more of        vertical prediction, horizontal prediction, or diagonal        prediction.    -   33. The method of enumerated example embodiment 25, wherein the        intra coding or inter prediction comprises template matching, a        frequency domain method, or a spatial displacement method.    -   34. The method of enumerated example embodiment 25, wherein the        inter prediction comprises bi-predictive or multi-hypothesis        inter prediction.    -   35. The method of enumerated example embodiment 25, wherein the        predicting step comprises a combination of intra coding and        inter prediction.    -   36. The method of enumerated example embodiment 25, further        comprising signaling the one or more adjacent macroblocks with        one or more of flags or semantics.    -   37. The method of enumerated example embodiment 25, wherein the        prediction involves performing intra prediction and inter        prediction.    -   38. The method of enumerated example embodiment 25, further        comprising:        -   predicting pixels in one or more other regions; and        -   combining the prediction of the first region with the            prediction for the one or more regions, wherein the            prediction comprises a coding mode for the macroblocks,            wherein the coding mode comprises an arbitrary coding mode,            a spiral coding mode, a random coding mode, a horizontal            coding mode, a vertical coding mode, or a diagonal coding            mode.    -   39. The method of enumerated example embodiment 25, further        comprising combining one or more other types of predictions to        the first region.    -   40. The method of enumerated example embodiment 25, wherein the        macroblock comprises a block partition with a size that is        different from a block partition size of a partition in at least        one of the adjacent macroblocks.    -   41. The method of enumerated example embodiment 25, further        comprising predicting information for other regions within a        picture, the other regions comprising overlapping macroblock        regions and non-overlapping macroblocks regions.    -   42. The method of enumerated example embodiment 25, wherein one        or more of the macroblocks comprise transformed residuals for        which a presence of at least one of the transformed residuals is        signaled in the video bit stream.    -   43. The method of enumerated example embodiment 25, the method        further comprises:        -   combining the prediction with another type of prediction            from one of the adjacent macroblocks, wherein the other type            of prediction comprises prediction using multi-hypotheses,            or prediction with a plurality of block sizes or macroblock            partition types; and        -   applying weighting to the other type of prediction.    -   44. A computer program product, encoded on a computer-readable        medium, comprising instructions to cause data processing        apparatus to perform operations for overlapped block disparity        estimation and compensation (OBDC) for images, the operations        comprising:        -   for a plurality of macroblocks, performing OBDC prediction            for at least a first subset of macroblocks by overlapping            less than all block boundaries for the macroblocks in the at            least first subset such that the OBDC prediction for the at            least first subset is causal.    -   45. The computer program product of enumerated example        embodiment 44, the operations further comprising:        -   performing OBDC prediction for a second subset of            macroblocks that involves overlapping by overlapping all            block boundaries for the macroblocks in the second subset;            and        -   combining the OBDC prediction for the at least first subset            with the OBDC prediction for the second subset.    -   46. The computer program product of enumerated example        embodiment 44, the operations further comprising:        -   performing a type of motion prediction for a second subset            of macroblocks that differs from the OBDC prediction of the            macroblocks in the at least first subset of macroblocks; and        -   combining the OBDC prediction for the at least first subset            with the type of prediction for the second subset.    -   47. The computer program product of enumerated example        embodiment 44, wherein the operations for the combining        comprises:        -   applying a weighting parameter to the OBDC prediction for            the at least first subset or the type of prediction for the            second subset.    -   48. The computer program product of enumerated example        embodiment 44, the operations further comprising:        -   applying weighting to the at least first subset of            macroblocks using the OBDC prediction; and        -   applying a prediction mode to the OBDC prediction, wherein            the prediction mode comprises an internal prediction, an            external prediction, or a combination of internal and            external OBDC prediction.    -   49. The computer program product of enumerated example        embodiment 44, wherein the OBDC prediction comprises a coding        mode for the at least first subset of macroblocks, wherein the        coding mode comprises an arbitrary coding mode, a spiral coding        mode a horizontal coding mode, a vertical coding mode, or a        diagonal coding mode.    -   50. The computer program product of enumerated example        embodiment 44, wherein the type of prediction for the second        subset of macroblocks comprises intra prediction or inter        prediction.    -   51. The computer program product of enumerated example        embodiment, wherein the intra coding or intra prediction        comprises one or more of vertical prediction, horizontal        prediction, or diagonal prediction, template matching, a        frequency domain method, or a spatial displacement method.    -   52. The computer program product of enumerated example        embodiment 44, wherein the macroblocks form an orthogonal        pattern, a rectangular pattern, a square pattern, a diamond        pattern, a circular pattern, or polygons with a plurality of        edges, and wherein the prediction extends in one or more        dimensions.    -   53. The computer program product of enumerated example        embodiment 44, wherein the prediction comprises a mesh-based        prediction, wherein the mesh-based prediction comprises        triangular shapes.    -   54. The computer program product of enumerated example        embodiment 44 further comprising instructions associated with        the OBDC prediction comprising computing a residual of the first        macroblock that is independent of information from future        macroblocks.    -   55. A system to perform motion estimation of images, the system        comprising:        -   a display device to display image data;        -   a computer readable medium to store the image data and            instructions for image data processing; and        -   a data processing device operable to process the            instructions and image data, the instructions causing the            device to perform overlapped block disparity estimation            (OBDC) for images, the operations comprising:            -   for a plurality of macroblocks, performing OBDC                prediction for at least a first subset of macroblocks by                overlapping less than all block boundaries for the                macroblocks in the at least first subset such that the                OBDC prediction for the at least first subset is causal.    -   56. The system of enumerated example embodiment 55, wherein the        instructions further comprise:        -   performing a type of motion prediction for a second subset            of macroblocks that differs from the OBDC prediction of the            macroblocks of the at least first subset of macroblocks; and        -   combining the OBDC prediction for the at least first subset            with the type of prediction for the second subset.    -   57. The system of enumerated example embodiment 55, wherein the        combining comprises taking a weighted average of the OBDC        prediction for the at least first subset and the type of        prediction for the second subset of macroblocks.    -   58. The system of enumerated example embodiment 55, wherein the        plurality of macroblocks comprise macroblocks of various sizes,        or macroblocks with partitions having a plurality of shapes or        sizes.    -   59. The system of enumerated example embodiment 55, wherein the        OBDC prediction is signaled explicitly or via of semantics to        indicate whether OBDC prediction is to be used for a macroblock        in the at least first subset of macroblocks.    -   60. The system of enumerated example embodiment 55, wherein one        or more of the macroblocks comprise transformed residuals for        which a presence of at least one of the transformed residuals is        signaled in the video bit stream.    -   61. A system for disparity estimation and disparity compensation        for video, the system comprising:        -   a video encoder comprising one or more video encoder            components for encoding that causally executes overlapped            block disparity estimation and compensation (OBDC) to a            subset of macroblocks in an image of a video bit stream, the            one or more video encoder components comprising:            -   a disparity estimation component to determine one or                more prediction modes or prediction parameters; and            -   a disparity compensation component to utilize disparity                estimation component information to generate prediction                information utilizing causally-executed OBDC for the                subset of macroblocks; and        -   a video decoder comprising one or more components for            decoding, the one or more video decoder components to            execute entropy decoding, execute disparity compensation,            and generate residual information utilizing the            causally-executed OBDC.    -   62. The system of enumerated example embodiment 61, wherein the        one or more video decoder components are arranged to execute the        entropy decoding, execute the disparity compensation, and        generate the residual information in parallel.

Particular example embodiments of the disclosure have thus beendescribed; other embodiments are within the scope of the followingclaims and equivalents.

1. (canceled)
 2. An apparatus to encode a block motion compensated videobit stream, the apparatus comprising: an input for receiving inputvideo; and a processor to encode the input video, wherein the processor:encodes a first block partition of a picture of the input video having aprediction type of inter-prediction; encodes a second block partition ofthe picture, the second block partition having a prediction type ofinter-prediction and being edge adjacent to the first block partition;encodes a third block partition of the picture; and encodes an explicitsignal, the explicit signal indicating a mode for the first blockpartition, wherein the mode is one of (i) a first mode that identifiesthe first block partition as being motion compensated by motion vectorinformation of the second block partition, or (ii) a second mode thatidentifies the first block partition as being motion compensated bymotion vector information of the third block partition without motionvector information of the second block partition.
 3. The apparatus ofclaim 2, wherein at least a region of the first block partition overlapswith a region of the second block partition.
 4. The apparatus of claim2, wherein the processor includes a picture reference store.
 5. Theapparatus of claim 2, wherein the processor interacts with a remoteclient device over a communication network.